package com.atguigu.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;

import javax.servlet.http.HttpSession;
import java.util.Locale;

/**
 * @author 伟哥
 * @date 2021-06-01 17:27
 */
@Controller
public class i18nTestController {

    // 1、获取 SpringMVC中的资源管理器ResourceBundleMessageSource
    @Autowired
    private ResourceBundleMessageSource messageSource;


    @RequestMapping("/tologinpage")
    public String tologinpage(@RequestParam(value="locale",defaultValue = "zh_CN")String localeString, HttpSession session, Locale locale, Model model){
        System.out.println(locale);

        /* 2、使用ResourceBundleMessageSource
        messageSource.getMessage(国际化资源文件中的key，国际化资源文件中的占位符，Locale)
         */
        String welcomeinfo = messageSource.getMessage("welcomeinfo", null, locale);
        System.out.println(welcomeinfo);// 欢迎来到尚硅谷

        /* 3、实际作用
        *       （1）可以取出国际化资源文件中的错误信息。
        *       （2）存储在隐含模型Model中，也就是request域中
        *       （3）在页面取出错误信息
        * */
        model.addAttribute("msg","国际化资源文件中的错误信息！");


        /**
         * 将区域信息，存储在Session中，供SessionLocaleResolver获取

        if(localeString != null && !"".equals(localeString)){
            System.out.println(1);
            session.setAttribute(SessionLocaleResolver.class.getName() + ".LOCALE",new Locale(localeString.split("_")[0],localeString.split("_")[1]));
        } else {
            System.out.println(2);
            // 请求没带指定的信息，则使用，默认设置的信息
            session.setAttribute(SessionLocaleResolver.class.getName() + ".LOCALE",locale);
        }
         */

        return "login";
    }
}
